package main

// 业务逻辑都放到tms-server/gin目录下

import (
	"fmt"
	"os"
	"tms-server/driver"
	"tms-server/env"
	"tms-server/utils"

	"tms-server/gin/models"

	"github.com/fvbock/endless"
)

var (
	runMode string
)

func init() {
	args := os.Args
	if len(args) < 2 {
		runMode = "dev"
	} else {
		runMode = args[1]
	}
}

func main() {
	// 初始化配置
	err := env.InitConfig(runMode)
	utils.Check("env.InitConfig", err)

	// 初始化数据库引擎
	closeFunc, err := driver.InitRedis()
	utils.Check("driver.InitRedis", err)
	defer closeFunc()
	err = driver.InitXorm()
	utils.Check("driver.InitXorm", err)
	err = models.Sync()
	utils.Check("models.Sync", err)

	// 初始化路由
	router := InitRouter()

	// 平滑重启
	err = endless.ListenAndServe(fmt.Sprintf("localhost:%d", env.Confs.ServerPORT), router)
	utils.Check("endless.ListenAndServe", err)
}
